1. Field of the Invention
The present invention is directed to an improved system and system for the modulation of a signal, particularly, to a system and method for fine-tuning a signal using a numerically controlled oscillator, more particularly, in conjunction with a convolution algorithm.
2. Background and Objects of the Present Invention
The evolution of wireless communication over the past century, since Guglielmo Marconi's 1897 demonstration of radio's ability to provide continuous contact with ships sailing the English Channel, has been remarkable. Since Marconi's discovery, new wireline and wireless communication methods, services and standards have been adopted by people throughout the world. This evolution has been accelerating, particularly over the last ten years, during which the mobile radio communications industry has grown by orders of magnitude, fueled by numerous technological advances that have made portable radio equipment smaller, cheaper and more reliable. The exponential growth of mobile telephony will continue to rise in the coming decades as well, as this wireless network interacts with and eventually overtakes the existing wireline networks.
In conjunction with the aforementioned telephonic revolutions have come advances in the processing of signals used in modern telephonic equipment. For example, convolutional encoding is utilized to better preserve the integrity of a digital transmission by convoluting or spreading the signal out, enabling error correction to reconstruct a noisy signal. Additionally, convolution algorithms, such as the fast convolution algorithm, are very effective ways of implementing digital filters, and which, when modified to employ decimation and frequency shifting, can be used in cellular base stations and other radio systems.
As is understood in the art, however, the frequency shifts possible in fast convolution algorithms are restricted to integer multiples of the spacing between the energy bins in a Discrete Fourier Transform or DFT (and inverse DFT or IDFT). Since the bin spacing in the DFT/IDFT is determined by filtering requirements, the frequency shifts can be in the order of ten kilohertz, while a frequency resolution is required that allows tuning the received channel to within 100 Hz from zero Hz (100 Hz is chosen somewhat arbitrarily, but it is nonetheless in the same order as the Doppler shift and other effects in the radio). Consequently, a Numerically Controlled Oscillator (NCO) is typically necessary for fine-tuning the signal coming from a fast convolution algorithm.
An NCO performs multiplications between a signal and a complex sinusoid to accomplish the task of converting the incoming signal, which is at a first frequency, to a second frequency. A sampling of sinusoid values is stored within a lookup table stored in a memory, e.g., a conventional Random Access Memory (RAM) or a Read Only memory (ROM). Shown in FIG. 1 is a general implementation of an NCO, where an input data stream constituting Real (Re) and Imaginary (Im) components feeds into an NCO 100, which consults a lookup table 110 connected to a phase register 120 and a phase incrementer 130, described in more detail hereinafter.
As is understood in the art, the precision requirements of the complex sinusoid values are governed by the data representation. Since a sinusoid, such as a sine wave, is only approximated, both the number of different sinusoidal phases stored and the number of bits utilized in the representation of each phase are approximations with an error component associated therewith. Also, since the errors generated in each process (phase and bit number) are independent, the errors propagate independently to create an overall error for each approximation. Errors are also introduced during each multiplication. The particular number of bits utilized for each sinusoidal representation is typically determined by the quantization noise of the sinusoid, which decreases by 6 dB for each extra bit stored per real and imaginary component of the sinusoidal phase. For example, if 90 dB of spurious-free dynamic range (SFDR) is required, 15 bits per real (in-phase, I) and imaginary (quadrature-phase, Q) value are required absent other errors.
With the above in mind, there are at present two techniques for determining optimal NCO lookup table 110 size. The first technique is to store a sufficient number of discrete sinusoidal values so that picking one of the stored values is always a "good enough" approximation of the desired sinusoid value, i.e., all frequencies can be obtained with the noise power or overall error below a given threshold. A vector representation of a selection made pursuant to this first technique is shown in FIG. 2, illustrating a full circle 200 of circumference 2.pi.M where M is the radial vector. Eight discrete, equally spaced apart phase values are shown in FIG. 2. Consequently, any sinusoidal value extracted from lookup table 110 falls at one of these values only, e.g., vector 210, which serves as an approximation of a desired vector 220 situated between the stored values. The error in this approximation is illustrated in FIG. 2 as vector 230, which is at most .pi./N where N is the number of stored phase values (.pi./8 for 8 phases). As is understood in the art, the frequency resolution with this strategy is defined solely by the number of bits (p) in the phase register 120 of FIG. 1, which are truncated to t when addressing the lookup table 110. The number of phases N that have to be stored to get the error to a given level is, therefore, N=2.sup.(SNR+5.17)/6.02.
The second technique for determining the NCO lookup table 110 size is to use only those frequencies that can be exactly represented by the finite number of phases stored in the lookup table 110. Consequently, the only error in the output signal will be from the quantization of the sinusoidal values, i.e., the error made in storing the values. As is understood in the art, the frequency resolution is now F.sub.s /N, where F.sub.s is the sampling frequency and N is the number of phases. In this technique, the number of different frequencies matches the number of obtainable phases N.
Since the number of values stored in the second technique decreases with decreasing sampling frequency for a given frequency resolution and the number of values stored in the first technique increases with an increased spurious-free dynamic range, it should be understood that for each dynamic range requirement there is a different breakpoint in frequency resolution for choosing between the different techniques.
It should be understood, however, that through exploitation of the symmetric properties of the unit circle, the size of the lookup table 110 may be reduced. For example, in either technique the lookup table 110 size can be reduced by a factor of eight if the number of phases, N, is divisible by four. The number of stored complex sinusoid values then decreases to N/8 even though the obtainable number of phases is still N. Since this reduction mechanism, applicable to both techniques, offers great storage savings, the number of phases commonly chosen are divisible by four. By way of example, if the dynamic range requirement is 72 dB, about 2.sup.13 "raw" values are stored per technique one, reducing to 2.sup.10 or 1,024 complex words if symmetric reductions are employed. For technique two, 100 Hz resolution at 1 MHZ sampling frequency results in N=10,000 complex words, which reduces to 1,250 due to symmetry. To illustrate the effect of increased dynamic range requirements, if 90 dB of SFDR is required, the lookup table 110 size for technique one is 2.sup.16 or 2.sup.13 (8,192) reduced, but still 1,250 (reduced) under technique two.
It should be understood that although a frequency shift in the fast convolution algorithm is virtually free, the frequency resolution for this shift operation is rather coarse. Consequently, for a given frequency resolution either the DFT/IDFT resolution must be increased to the desired level or an NCO utilized to complete the channel fine-tuning. Increasing the DFT/IDFT resolution to the desired level, however, means that unnecessarily large DFTs/IDFTs are used. The alternative requires a big lookup table in the NCO, which translates to increased chip area and power consumption when implemented as an on-chip memory. Furthermore, the power requirements for addressing and reading from a large memory is also high. Also, even when using the second technique described above, the number of stored complex values can be considerable, further increasing the area and power requirements, e.g., a resolution of a 10,000th of the sampling frequency and 90 dB of dynamic range requires the storage of 1,250 complex values each having 15 bits of representation, which translates to 37,500 bits of memory.
It is, accordingly, an object of the present invention to provide a system and method that significantly reduces the number of complex sinusoid values that are stored in the lookup table for the NCO, particularly when used in connection with a fast convolution algorithm.
It is also an object of the present invention that, by reducing the lookup table size, the apparatus utilized in the system and method employs reduced chip area, reduces the power consumption for reading the lookup table values, and, by virtue of using smaller tables and smaller buses, reduces power consumption further by eliminating large buses.
It is a further object of the present invention to reduce the computational complexity of the NCO, particularly where a small increase of the basic resolution of the fast convolution system is necessary.